package com.ymm.lulutong.mapper;

import com.ymm.lulutong.entity.WalletOpsLog;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface ShipperWalletOpsLogMapper {

    /**
     * 插入订单操作日志
     *
     * @param walletOpsLog 订单操作日志
     */
    void add(WalletOpsLog walletOpsLog);

    /**
     * 根据主键返回订单操作日志
     *
     * @param logId 日志Id
     * @return 订单操作日志
     */
    WalletOpsLog getByLogId(Long logId);

    /**
     * 根据货主Id获取操作日志
     */
    List<WalletOpsLog> listByShipperId(Long shipperId);

    /**
     * 更改日志的业务执行状态
     *
     * @param logId           日志Id
     * @param executionStatus 业务执行状态
     */
    void updateExecutionStatusByLogId(@Param(("logId")) Long logId, @Param("executionStatus") Integer executionStatus);

    /**
     * 根据日志Id删除记录
     *
     * @param logId 日志Id
     */
    void deleteByLogId(Long logId);

    /**
     * 根据条件更新一条记录
     * @param condition 更新条件
     * @return 更新是否成功
     */
    boolean updateByLogIdOnCondition(WalletOpsLog condition);
}